/*
 * ProcesadorDeComandos.cpp
 *
 *  Created on: 18/04/2014
 *      Author: manuel
 */

#include "ProcesadorDeComandos.h"

ProcesadorDeComandos::ProcesadorDeComandos() {}

ProcesadorDeComandos::~ProcesadorDeComandos() {}

int ProcesadorDeComandos::comprimir(char* nombre) {
	std::cout << "COMPRIMIR: " << nombre << std::endl;

	int opt = 200;

	printf("optimizacion de compresion por default: %d\n", opt);

	BlockSorting bs(1024, opt);

	bs.codificarArchivo((const char*)nombre);

	return EXITO;
}

int ProcesadorDeComandos::comprimir(char* nombre, int opt) {
	std::cout << "COMPRIMIR: " << nombre << std::endl;
	printf("optimizacion de compresion: %d\n", opt);

	BlockSorting bs(1024, opt);
	MoveToFront m = *new MoveToFront();
	Huffman huff;

	std::string bs_cod = bs.codificarArchivo((const char*)nombre);

	m.makeDictionary();

	return EXITO;
}

int ProcesadorDeComandos::descomprimir(char* nombre) {
	std::cout << "DESCOMPRIMIR: " << nombre << std::endl;

	BlockSorting bs(1024, 0); //no importa la optimizacion

	bs.decodificarArchivo((const char*) nombre);

	return EXITO;
}
